#include <cstdlib>
#include "btBulletDynamicsCommon.h"

class Cameras{
	public:

	btVector3 slingShotBackPos;

	btVector3 birdBackCam;
	btVector3 heliCam;
	btVector3 freeCam;

	btVector3 birdBackCamLookAt;
	btVector3 birdBackCamUp;

	btVector3 heliCamLookAt;
	btVector3 heliCamUp;
	
	btVector3 freeCamLookAt;
	btVector3 freeCamUp;

	int activeCamera;
	
	int countTimeStep;

	bool cameraLockedAtBird;
	bool birdIsFlying;
	
	float timeStep; // default:1/60 ("FPS")
	btScalar lockY;	// utilizado apos dar lock da cam no bird (pra nao dar salto em y)
	
	Cameras();

	void setInitialCamera();
//	void updateActiveCamera();
	void updateBirdBackCamera(btRigidBody* bird, int &flying, int &stopped);
	
	btVector3 getActiveCameraPos();
	btVector3 getActiveCameraLookAt();
	btVector3 getActiveCameraUp();

	// free cam methods
	void moveForward();
	void moveBackward();
	void strafeLeft();
	void strafeRight();
	void lookUp();
	void lookDown();
	void lookRight();
	void lookLeft();
	void moveUp();
	void moveDown();

	// heli cam methods
	void heliForward();
	void heliBackward();
	void heliRight();
	void heliLeft();
	void heliZoomIn();
	void heliZoomOut();
};
